// 引入koa-router
const Router = require('koa2-router');
const router = new Router();
// 引入model的sql语句
const {
    getCart,
    addCart,
    updateCart,
    deleteCart
} = require("../../model/api/cart");

// 引入jsonwebtoken模块
const jwt = require("jsonwebtoken");
const SECRET = "hello";

// 添加商品到购物车
router.post('/addCart',async (ctx)=>{
    // 获取加入购物车商品编号
    const { id,quantity } = ctx.request.body;
    // console.log(ctx.request.body);
    // 获取token
    const token = ctx.request.headers['authorization'];
    // console.log(ctx.request.headers['authorization']);

    // 解密token获取用户id
    let decoded = jwt.verify(token, SECRET);
    // console.log(decoded.ID);

    // 查询数据库是否存在该商品
    const pro = await getCart([id,decoded.ID]);
    // console.log(pro.length);

    // 判断购物车是否已添加商品
    if (pro.length===0){
        // 没添加过  存入数据库
        await addCart([decoded.ID,id,quantity]);
        ctx.body = {code:200};
    }else {
        // 添加过   判断添加商品的数量与数据库里的数量相加是否大于10
        let num = pro[0].quantity+quantity;
        if (num<=10){
            await updateCart([num,id,decoded.ID]);
            ctx.body = {code:200};
        }else {
            ctx.body = {code:500};
        }
        // console.log(pro[0].quantity);
        // console.log(quantity);
    }

})

// 删除购物车的商品
router.post('/removeCart',async (ctx)=>{
    const { id } = ctx.request.body;
    // console.log(id);
    await deleteCart([id]);
    ctx.body = '删除成功';
})

// 删除购物车的勾选商品
router.post('/deleteAll',async (ctx)=>{
    const { delItems } = ctx.request.body;
    // console.log(delItem);
    delItems.forEach(async(item,index,arr)=>{
        await deleteCart([item.carid]);
    })
    ctx.body = '删除成功';
})


module.exports = router;